import java.util.*;

public class Main {

    // 参数改为 List<Integer>
    public static List<Integer> solution(List<Integer> a, List<Integer> b) {
        Set<Integer> setA = new HashSet<>(a);
        Set<Integer> setB = new HashSet<>(b);

        // 求交集：保留 setA 中也存在于 setB 的元素
        setA.retainAll(setB);

        // 转为列表并降序排序
        List<Integer> result = new ArrayList<>(setA);
        result.sort(Collections.reverseOrder());

        return result;
    }

    public static void main(String[] args) {
        // 测试用例：使用 Arrays.asList 构造 List<Integer>
        System.out.println(solution(
                Arrays.asList(1, 2, 3, 7),
                Arrays.asList(2, 5, 7)
        ).equals(Arrays.asList(7, 2)));

        System.out.println(solution(
                Arrays.asList(1, 4, 8, 10),
                Arrays.asList(2, 4, 8, 10)
        ).equals(Arrays.asList(10, 8, 4)));

        System.out.println(solution(
                Arrays.asList(3, 5, 9),
                Arrays.asList(1, 4, 6)
        ).isEmpty());

        System.out.println(solution(
                Arrays.asList(1, 2, 3),
                Arrays.asList(1, 2, 3)
        ).equals(Arrays.asList(3, 2, 1)));
    }
}